/**
* @file qousercontrol.cpp
* @describe QoUserControl
* @author gaoyuelong
* @date 2022/05/04
*/

#include "qousercontrol.h"
#include "qousermanager.h"
#include "common.h"
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QDebug>

QoUserControl::QoUserControl()
{
    m_pUserModel = new QoUserModel();
    connect(m_pUserModel, SIGNAL(signalRecvMsg(const QJsonObject &)),
            this, SLOT(slotRecvMsg(const QJsonObject &)));
}

QoUserControl *QoUserControl::getInstance()
{
    static QoUserControl qoUserControl;
    return &qoUserControl;
}

bool QoUserControl::chat(const QString &strToAccount, const QString &strMsg)
{
    QJsonObject jsonobj;

    jsonobj.insert("Qo", "QoQoQo");
    jsonobj.insert("MessageType", eChatMsg);
    jsonobj.insert("Form", QoUserManager::getInstance()->getCurrentUser()->getAccount());
    jsonobj.insert("To", strToAccount);
    jsonobj.insert("Msg", strMsg);

    QJsonObject jsonRecvMsgObj;
    m_pUserModel->sendMsg(jsonobj);

//    if (jsonRecvMsgObj["state"] == eTrue) {
//        return jsonRecvMsgObj["Account"].toString();
//    }
    return true;
}



void QoUserControl::slotRecvMsg(const QJsonObject &jsonObject)
{
    qDebug() << __FUNCTION__;
    qDebug() << QString(QJsonDocument(jsonObject).toJson(QJsonDocument::Compact));
    emit signalRecvMsg(jsonObject["Msg"].toString());
}
